import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

class ImgtestTest implements SendImg {

    //使用GUI
    @org.junit.jupiter.api.Test
    void Test(){
        SendImg imgtest2 = new ImgtestTest();
        imgtest2.initUI();
    }

    public void initUI() {
//1.1创建一个顶级容器，也就是空白窗口，并为此窗口设置属性（窗口名称，大小，显示位置，关闭设置）

// 用JFrame创建一个名为frame的顶级容器，需要添加的包名为javax.swing.JFrame
            JFrame frame = new JFrame();
//设置窗口名称
            frame.setTitle("预测图像");
//设置窗口大小
            frame.setSize(540, 427);
//设置窗口位于屏幕中央
            frame.setLocationRelativeTo(null);
//参数为3时，表示关闭窗口则程序退出
            frame.setDefaultCloseOperation(3);

//1.2设置窗体上组件的布局，此处使用流式布局FlowLayout，流式布局类似于word的布局
//用FlowLayout创建一个名为f1的对象,需要添加的包名为java.awt.FlowLayout，其中LEFT表示左对齐，CENTER表示居中对齐，RIGHT表示右对齐
            FlowLayout f1 = new FlowLayout(FlowLayout.LEFT);
//frame窗口设置为f1的流式左对齐
            frame.setLayout(f1);

            JLabel name = new JLabel("添加图片：");
            frame.add(name);

//JTextField在窗口上添加一个可输入可见文本的文本框，需要添加的包名为javax.swing.JTextField.
            JTextField nametext = new JTextField();
//设置文本框大小
            nametext.setPreferredSize(new Dimension(220, 30));
//添加到窗口上
            frame.add(nametext);

            JLabel jLabel = new JLabel();

            JLabel name1 = new JLabel();
            name1.setPreferredSize(new Dimension(220, 30));
//JButton创建一个可点击的按钮，按钮上可显示文本图片
            JLabel ClassLabel = new JLabel();
            JButton bu = new JButton("训练图片");
            bu.setPreferredSize(new Dimension(130, 30));
            frame.add(bu);
            bu.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent actionEvent) {
                    JFileChooser file = new JFileChooser(".\\img\\allImage\\fashion_mnist_test\\");
                    file.setAcceptAllFileFilterUsed(false);
                    int result = file.showOpenDialog(null);

                    if (result == JFileChooser.APPROVE_OPTION) {

                        String path  = file.getSelectedFile().getAbsolutePath();
                        // System.out.println(path);
                        nametext.setText(path);
                        jLabel.setIcon(new ImageIcon(path));
                        ClassLabel.setText(getClassLable(path));
                    } else {
                        System.out.println("你已取消并关闭了窗口！");
                    }

                }
            });
            frame.add(name1);
            frame.add(jLabel);
            frame.add(ClassLabel);
//设置窗口可见，此句一定要在窗口属性设置好了之后才能添加，不然无法正常显示
            frame.setVisible(true);
    }

    //设置桩模块，模拟产生了一个可以预测到结果的值
    @Override
    public String getClassLable(String path) {
        return "衣服";
    }
}